import { createStore } from "vuex";

// 创建一个新的 store 实例
const store = createStore({
  // 状态
  state() {
    return {
      count: 0,
      user: null,
    };
  },

  // 突变（同步更新状态）
  mutations: {
    increment(state) {
      state.count++;
    },
    setUser(state, user) {
      state.user = user;
    },
    // 登录
    toLogin(state, user) {
      state.user = user;
    },
    // 登录
    loginOut(state) {
      state.user = null;
    },
  },

  // 动作（异步操作）
  actions: {
    toLoginOut({ commit }) {
      commit("loginOut");
    },
  },

  // 获取器（类似计算属性）
  getters: {
    doubleCount(state) {
      return state.count * 2;
    },
    getterUser(state) {
      return state.user;
    },
  },
});

export default store;
